/*
 * Filtro.cpp
 */

#include "Filtro.h"
/*
 * Filtro.cpp
 */
/*
#include "Filtro.h"

Filtro::Filtro(){
}

Mat Filtro::FiltroImg(Mat hsvMat,Scalar soglia_inf, Scalar soglia_sup,int DIM_RIGHE_TAGLIATA,int DIM_COLONNE_TAGLIATA) {


	Mat  img_filt(Size(DIM_COLONNE_TAGLIATA,DIM_RIGHE_TAGLIATA),CV_8UC1,Scalar(0));
	Mat  img_filt2(Size(DIM_COLONNE_TAGLIATA,DIM_RIGHE_TAGLIATA),CV_8UC1,Scalar(0));

	//PARTE FUNZIONANTE
	//inRange(hsvMat,soglia_inf,soglia_sup,img_filt);
	//erode(img_filt,img_filt, Mat(), Point(-1,-1), 1, NULL,NULL );
	//bilateralFilter(img_filt,img_filt2,7,150,150);
	//dilate(img_filt2,img_filt2, Mat(), Point(-1,-1), 1, NULL,NULL );


	//PARTE NUOVA
	IplImage *tmp1;
	IplImage *tmp2;
	tmp1 = cvCreateImage(cvSize(DIM_COLONNE_TAGLIATA,DIM_RIGHE_TAGLIATA), IPL_DEPTH_8U, 1);
	tmp2 = cvCreateImage(cvSize(DIM_COLONNE_TAGLIATA,DIM_RIGHE_TAGLIATA), IPL_DEPTH_8U,1);

	inRange(hsvMat,soglia_inf,soglia_sup,img_filt);
	erode(img_filt,img_filt, Mat(), Point(-1,-1), 1, NULL,NULL );
	memcpy(tmp1->imageData, img_filt.data, DIM_COLONNE_TAGLIATA * DIM_RIGHE_TAGLIATA * 1 * sizeof(char));
	cvSmooth(tmp1,tmp2,CV_MEDIAN,3,0,0,0);
	memcpy(img_filt2.data,tmp2->imageData,DIM_COLONNE_TAGLIATA * DIM_RIGHE_TAGLIATA * 1 * sizeof(char));
	dilate(img_filt2,img_filt2, Mat(), Point(-1,-1), 2, NULL,NULL );
	if(tmp1!=NULL)
		cvReleaseImage(&tmp1);
	if(tmp2!=NULL)
		cvReleaseImage(&tmp2);
	return img_filt2;
}


Filtro::~Filtro(){}

 */

Filtro::Filtro(){
}

Mat Filtro::FiltroImg(Mat hsvMat,Scalar soglia_inf, Scalar soglia_sup,int DIM_RIGHE_TAGLIATA,int DIM_COLONNE_TAGLIATA) {


	Mat img_filt(Size(DIM_COLONNE_TAGLIATA,DIM_RIGHE_TAGLIATA),CV_8UC1,Scalar(0));
	Mat img_filt2(Size(DIM_COLONNE_TAGLIATA,DIM_RIGHE_TAGLIATA),CV_8UC1,Scalar(0));

	/*filtraggio morfologico*/
	inRange(hsvMat,soglia_inf,soglia_sup,img_filt);
	dilate(img_filt,img_filt, Mat(), Point(-1,-1), 1, NULL,NULL );
	erode(img_filt,img_filt, Mat(), Point(-1,-1), 1, NULL,NULL );
	bilateralFilter(img_filt,img_filt2,7,150,150);


	/*filtro mediano*/

	//medianBlur(img_filt,img_filt2,3);

	return img_filt2;
}


Filtro::~Filtro(){}





